package me.timlong.StringDynamic;

public class CrossSring {
    /**
     * 题目描述
     * 给出三个字符串s1, s2, s3,判断s3是否可以由s1和s2交织而成。
     * 例如：
     * 给定
     * s1 ="aabcc",
     * s2 ="dbbca",
     * 如果s3 ="aadbbcbcac", 返回true
     * 如果s3 ="aadbbbaccc", 返回false
     *
     * 解决方案：
     * 动态规划思想：
     * dp[i][j]表示s1前i以及之前的所有字符和s2前j以及之前的字符
     * 连接起来能够交叉组成s3的前i+j
     *
     * ==== 要注意的是dp[i][j] i,j表示的是字符串的个数，
     *      而charAt是从下标为0开始的 ====
     *
     * 于是 初始化：
     * 1, dp[0][0] = true
     * 2, dp[0][0...s2.length()] = (s2.charAt(i) == s3.charAt(i + 0))
     * 3, dp[0...s1.length()][0] = (s1.charAt(j) == s3.charAt(j + 0))
     * 4, for(i = 1; i < s1.length(); i++)
     *          for(j = 1; j < s2.length(); j++)
     *                  dp[i][j] = (dp[i - 1][j] && s1.charAt(i) == s3.charAt(i + j))
     *                  || (dp[i][j - 1] && s2.charAt(j) == s3.charAt(i + j))
     *
     * @param s1
     * @param s2
     * @param s3
     * @return
     */

    public boolean isInterleave(String s1, String s2, String s3) {

        int len1 = s1.length();
        int len2 = s2.length();
        int len3 = s3.length();

        char[] chars1 = s1.toCharArray();
        char[] chars2 = s1.toCharArray();
        char[] chars3 = s1.toCharArray();


        return false;


    }
}
